It is known in communications networks to acknowledge to packet sending nodes the receipt of packets by a packet receiving node. For example, one common algorithm is to acknowledge each packet as it is received at a node. With respect to the Internet and TCP/IP networks in general, at the present time RFC 1122, which document governs much of the TCP/IP protocol, states:
"A host that is receiving a stream of TCP data segments can increase efficiency in both the Internet and the hosts by sending fewer than one ACK (acknowledgement) segment per data segment received; this is known as a delayed ACK . . . " PA1 "A TCP should implement a delayed ACK, but an ACK should not be excessively delayed; in particular, the delay must be less than 0.5 seconds, and in a stream of full-sized segments there should be an ACK for at least every second segment."
RFC 1122 adopts the term segment or data segment. The term "packet" is used instead herein, as it appears to be a more commonly recognized terminology. As an implementation of the above RFC 1122 statement, the present TCP/IP and Internet standard is to acknowledge every second full-sized packet and to rely on packet timeouts to acknowledge partial size packets. These packet timeouts are typically set at 150 to 200 milliseconds and are thus well within the 0.5 second criterion. FIGS. 1 and 2 of the drawing illustrate this prior art implementation and will be discussed in somewhat more detail below.
In their paper "Evaluation of Acknowledgement Methods for High-Speed Data Transmission", Electronics and Communications in Japan, Part 1, Vol. 77, No. 9, 1994; Saito et al recognize a relationship between end to end transmission efficiency, transmission rate, propagation delay, protocol processing time in the network nodes, window size and response interval. Response interval is defined as the number of packets received before an acknowledgement is returned. They recognize that known acknowledgement algorithms include returning an acknowledgement for various numbers of received packets. They derive formulas for selecting a minimum value for the window size, and a maximum value for the protocol processing time required by the processing nodes, given some desired value of transmission efficiency and some maximum value for the response interval. Formula 37 on page 12, for example, is the relevant formula for TCP/IP networks. Saito et al appear to be attempting to optimize transmission efficiency in light of the remaining parameters that are analyzed in the paper. However, the paper does not consider the problem of enhancing transmission efficiency while at the same time improving processor utilization, for the invention described herein results in vastly different values selected as a response interval than Saito et al predict by their analysis, as will become apparent below.
Both the sender and the receiver in a packet connection consume a significant amount of processor cycles processing acknowledgements. However, packet throughput will decrease if the sender does not receive acknowledgements at a rate sufficient for it to keep a windows worth of packets in transit on the connection between it and the receiver. Furthermore, if the sender does not receive an acknowledgement before a timeout of the ACK delay timer, a retransmission of packets will become necessary. This also reduces packet throughput on the connection and increases the processor utilization in processing acknowledgements. The ideal acknowledgement algorithm for the purpose of maintaining transmission efficiency and reducing processor utilization will minimize the number of acknowledgments while assuring that the sender will receive an acknowledgement just in time to allow it to continue to send packets without interruption or retransmission. The present standard for TCP networks, which acknowledges every other packet, generates far more acknowledgements than are needed to maintain throughput on a connection and consumes considerable processor cycles in the process. Saito et al do not address this particular problem.